JavaScript: プリミティブ型と参照型
プリミティブ型
変更不可能(イミュータブル)
メソッドを持たないデータ
種類
文字列 'string'
数値 1, 3.14
真偽値 true, false
null null
undefined undefined
シンボル
リテラルにより生成
変数には値が格納される。変数がコピーされると、値がコピーされる。
code:js
let x = 0;
let y = x; // y には 0が格納される。0への参照ではない。
x = 1;
console.log(y) // 0
オブジェクトのように扱われると、ラッパーオブジェクト?を生成してオブジェクトのように扱われる
参照型(オブジェクト)
変更可能(ミュータブル)
プリミティブ型以外はすべてオブジェクト
Object() {key: value}
Object
Array() [1, 2, 3]
Array (JavaScript)
Function() function() {}
Date() new Date()
RegExp() /^a/
Error() new Error()
複合型とも
リテラルもしくはnew演算子で生成
変数にはオブジェクトへの参照が格納される。変数がコピーされると、オブジェクトへの参照がコピーされる。
code:js
let obj1 = {};
let obj2 = obj1; // obj2 には {}への参照が格納される。
obj1.prop = 1;
console.log(obj2.prop) // 1
データ型を調べる方法
code:js
console.log(typeof true); // "boolean"
参考
開眼! JavaScript
文法とデータ型 - JavaScript | MDN
Primitive (プリミティブ) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN